Datacenters maintained by a service host provide resources for service providers to operate an increasing variety of information services. Current highly complex datacenters may incorporate hundreds or thousands of computing and networking devices such as servers, routers, load balancers, caches, etc., which may be distributed across many modules, containers, backbones, floors, buildings, etc. As demand increases, the complexity of the datacenter environment will continue to grow.
Before the advent of highly complex datacenters, business managers, developers, and datacenter operators made numerous assumptions in the design, provisioning, and deployment of services. The ability to measure performance and respond to dynamic conditions was crude. Services were built and deployed to particular pieces of hardware in a particular datacenter. Changes to those builds and deployments were possible, but at considerable effort and cost. Government regulation of information services was small to non-existent.
Given these prior conditions contractual arrangements, such as service level agreements (SLAs), to provide resources to service providers were necessarily limited. Primitive conditions resulted in primitive SLAs. As a result, the increasing complexity of the datacenter and the ability to optimize datacenter resources has outstripped those traditional SLAs. Instead of one massive server specified in an SLA executing a service, the service may now execute on an array of virtual machines instantiated on demand across multiple pieces of hardware located in datacenters across many borders. Government regulations have evolved to recognize and regulate services provided by datacenter resources. Monitoring and control has grown richer and more dynamic, allowing better operational control. Service developers may not know, or care to know, where or on what hardware the service will run. Service hosts may not be aware of considerations unique to the service and/or preferences of the developer. The coarse nature of the traditional SLA prevents optimization of existing resources, as well as the presentation and implementation of new operational boundaries.